class Singleton:
    # 创建一个类变量来保存类的唯一实例
    _instance = None

    def __new__(cls, *args, **kwargs):
        # 如果类的实例不存在，则创建它
        if not cls._instance:
            # i=1
            cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
            # 如果实例已存在，则直接返回该实例
        #这时候cls._instance其实就是这个单例对象的内存地址，是通过父类的new方法创造的，例如<__main__.Singleton object at 0x000002282CF882C0>
        return cls._instance

    # 使用示例


if __name__ == "__main__":
    # 创建Singleton类的3个实例
    instance1 = Singleton()
    instance2 = Singleton()
    instance3 = Singleton()

    # 检查两个实例是否相同
    print(instance1 == instance2)  # 输出: True

    # 由于是单例，所以instance1和instance2实际上是同一个对象
    print(instance1 is instance2)  # 输出: True